package com.middlegroup.pay.entity;

import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.middlegroup.common.enums.ChannelCode;
import com.middlegroup.common.enums.ServiceType;
import com.middlegroup.common.mybatisplus.BaseEntity;
import com.middlegroup.pay.annotation.EncryptProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author pc123
 * @since 2019-01-04
 */
@TableName("t_in_bills")
@Data
public class InBills extends BaseEntity{

    private static final long serialVersionUID = 1L;
    /**
     * 商户号
     */
    private String merchantCode;
    /**
     * 下游商户订单号
     */
    @TableField("merchant_bill_no")
    private String merchantBillNo;
    /**
     * 上游商户订单号
     */
    @TableField("bill_no")
    private String billNo;
    /**
     * 订单状态
            0：处理中
            1：成功
            2：失败
            3：超时
     */
    private Integer status;
    private BigDecimal amount;
    @TableField("name_enc")
    private String nameEnc;
    @TableField("card_no_enc")
    private String cardNoEnc;
    @TableField("id_card_enc")
    private String idCardEnc;

    private String subjectCode;
    /**
     * 银行预留手机号
     */
    @TableField("phone_enc")
    private String phoneEnc;
    /**
     * 姓名加密后
     */
    private String name;
    /**
     * 身份证加密后
     */
    @TableField(value = "id_card")
    @EncryptProperty(value = true)
    private String idCard;
    private String phone;
    /**
     * 交易卡号加密后
     */
    @TableField("card_no")
    private String cardNo;
    /**
     * 通道编码
     */
    @TableField("channel_code")
    private String channelCode;

    private String msg;

    private ServiceType serviceType;
    /**
     * 支付完成跳转url
     */
    @TableField("return_url")
    private String returnUrl;
    /**
     * 支付请求返回的id,用来查询
     */
    @TableField("order_id")
    private String orderId;
    /**
     * 支付确认返回的id,用来退款（Paypal特有）
     */
    @TableField("sale_id")
    private String saleId;
    /**
     * 币种
     */
    @TableField("currency")
    private String currency;
    /**
     * 通知下游的url
     */
    @TableField("notify_url")
    private String notifyUrl;
    /**
     * 支付时间
     */
    @TableField("pay_time")
    private Long payTime;
}
